﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using GestorDeFlotasDesktop.MejoresAutos;
using System.Data.SqlClient;

namespace GestorDeFlotasDesktop.Estadistica
{
    public partial class frmEstadistica : Form
    {
        public frmEstadistica()
        {
            InitializeComponent();
            populateAnio();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            List<SqlParameter> Parameters = ObtenerParametros();
            Form mejoresTaxis = new MejoresAutos.MejoresAutos(Parameters);
            mejoresTaxis.MdiParent = this.MdiParent;
            mejoresTaxis.Text = "Mejores 5 taxis del año " + cmbAnio.Text + " período " + cmbTrimestre.Text;
            mejoresTaxis.Show();
        }

        private void populateAnio()
        {
            SqlInterface.Conectar();
            SqlDataReader AniosReader = SqlInterface.ExecuteReader("SELECT DISTINCT YEAR(VIAJE_FECHA) AS VIAJE_FECHA FROM SQUIRTLE.VIAJE", CommandType.Text);

            List<int> listaMarcas = new List<int>();
            while (AniosReader.Read())
            {
                listaMarcas.Add(AniosReader.GetInt32(AniosReader.GetOrdinal("VIAJE_FECHA")));
            }
            cmbAnio.DataSource = listaMarcas;
        }

        private List<SqlParameter> ObtenerParametros()
        {
            int inicio, fin;
            if ((cmbTrimestre.SelectedItem.ToString()).Equals("Enero-Marzo"))
            {
                inicio = 1;
                fin = 3;
            }
            else if ((cmbTrimestre.SelectedItem.ToString()).Equals("Abril-Junio"))
            {
                inicio = 4;
                fin = 6;
            }
            else if ((cmbTrimestre.SelectedItem.ToString()).Equals("Julio-Septiembre"))
            {
                inicio = 7;
                fin = 9;
            }
            else //if ((cmbTrimestre.SelectedItem.ToString()).Equals("Octubre-Diciembre"))
            {
                inicio = 10;
                fin = 12;
            }

            List<SqlParameter> Parameters = cargarParametros(inicio, fin, Convert.ToInt32(cmbAnio.GetItemText(this.cmbAnio.SelectedItem)));

            return Parameters;
        }

        private List<SqlParameter> cargarParametros(int i, int f, int a)
        {
            List<SqlParameter> lista = new List<SqlParameter>();
            lista.Add(new SqlParameter("@anio", a));
            lista.Add(new SqlParameter("@mesInicio", i));
            lista.Add(new SqlParameter("@mesFin", f));
            return lista;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            List<SqlParameter> Parameters = ObtenerParametros();
            
            Form mejoresChoferes = new MejoresChoferes.MejoresChoferes(Parameters);
            mejoresChoferes.MdiParent = this.MdiParent;
            mejoresChoferes.Text = "Mejores 5 choferes del año " + cmbAnio.Text + " período " + cmbTrimestre.Text;
            mejoresChoferes.Show();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            List<SqlParameter> Parameters = ObtenerParametros();
            Form mejoresClientes = new MejoresClientes.MejoresClientes(Parameters);
            mejoresClientes.MdiParent = this.MdiParent;
            mejoresClientes.Text = "Mejores 5 clientes del año " + cmbAnio.Text + ", período " + cmbTrimestre.Text;
            mejoresClientes.Show();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            Form fraude = new ChoferesFraudulentos();
            fraude.MdiParent = this.MdiParent;
            fraude.Show();
        }
    }
}
